package _07Iterator;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

// Iterator 练习
// ---------------------------------------------------------
// 5. 使用普通for循环显示遍历题目4 的l2
// 使用加强for循环显示遍历题目4 的l2
// 使用迭代器遍历显示题目4 的l2,并移除其中的E

public class Exercise {
	public static void main(String[] args) {
		// ---------------------------------------------------------
		// List 练习
		// ---------------------------------------------------------
		// 4. 创建两个List容器对象l1 l2
		// * l1 添加 "A" "B" "C" 三个元素
		// * l2 添加 "D" "E" "F" "Egg" "Eee"
		// * 将l2的中的所有元素加入到l1中
		// *** 修改 ***
		// * 将l1中索引为2位置的改为"Z"
		// *** 显示、获取 ***
		// * 打印显示l1 l2的大小
		// * 显示l1中下标为1的元素
		// *** 删除 ***
		// * 将l1中索引为1的对象删除
		// * 将l1中第一个内容为"B"的对象删除

		List<String> l1 = new ArrayList<>();
		l1.add("A");
		l1.add("B");
		l1.add("C");

		List<String> l2 = new ArrayList<>();
		l2.add("D");
		l2.add("E");
		l2.add("F");
		l2.add("Egg");
		l2.add("Eee");

		l1.addAll(l2);
		System.out.println(l1);

		l1.set(2, "Z");
		System.out.println(l1);
		System.out.println(l1.size());
		System.out.println(l2.size());
		System.out.println(l1.get(1));
		l1.remove(1);
		System.out.println(l1);
		l1.remove(new String("B"));
		System.out.println(l1);

		// 使用普通for循环显示遍历题目4 的l2
		for (int i = 0; i < l2.size(); i++) {
			System.out.println(l2.get(i));
		}
		// 使用加强for循环显示遍历题目4 的l2
		for (String s : l2) {
			System.out.println(s);
		}

		// 使用迭代器遍历显示题目4 的l2,并移除其中的E
		// 得到一个迭代器
		Iterator<String> it = l2.iterator();

		// 判断还有没有下一个元素
		while (it.hasNext()) {
			// 得到下一个元素
			String s = it.next();
			System.out.println(s);

			//
			if (s.equals("E")) {
				// 移除元素
				it.remove();
			}
		}
		System.out.println(l2);
	}
}